Análisis espacio-temporal datos histórica artesanal de la pesquería de Bacalao

Analisis exploratorio 1986-2021

Author

Mauricio Mardones I

Published

June 25, 2023

ANTECEDENTES

El presente reporte tiene un codigo autocontenido con los Analísis Exploratorios de Datos (AED) de la pesquería de bacalao de profundidad extraído por la flota pesquera artesanal (espinel). Los analisis aca descritos estan compuestos de dos bases. La primera es de los registros oficiales de captura recogidos por el SERNAPESCA. En segundo lugar, se presentan el AED de los datos del monitoreo d la pesqería llevado a cabo por el IFOP a través del Programa de Seguimiento de Pesquerías Demersales del Departamento de Evaluación de Pesquerías.

El principal objetivo es identificar vacios y fortalezas de los datos en terminos espacio-temporales, y con ello tomar decisiones para el paso posterior de modelación de la dinámica poblacional del recurso para realizar asesoría en terminos de estatus y recomendación de una Captura Biologicamente Aceptable (CBA).

ANÁLISIS EXPLORATORIO DE DATOS (AED)

Cargo librerías necesarias para el análisis exploratorio de los datos de las distintas bases de bitácora, tallas y biológico.

library(here)
#analisis
library(ggsignif)
library(ggrepel)
library(inlmisc)
library(nortest) #para testear distribucion
library(skimr) #provides a frictionless approach to summary statistics w
library(easystats) # multiples unciones analiticas
library(lme4)
library(skimr)
library(readxl)
# vizualizacion
library(ggridges)
library(sf)
library(GGally)
library(tidyverse, quietly = TRUE)
library(knitr, quietly = TRUE)
library(kableExtra)
library(raster)
library(egg)
# A function for dotplots
multi_dotplot <- function(filename, Xvar, Yvar){
  filename %>%
    ggplot(aes(x = {{Xvar}})) +
    geom_point(aes(y = {{Yvar}}),
               alpha=0.4) +
    theme_bw() +
    coord_flip() +
    labs(x = "Order of Data")}

Identifico los directorio de trabajo y leo las tres bases de datos; a saber:

  • Bitácora
  • Biologico
  • Tallas
  • Desembarques (1985-2022)
bit <- read_excel("Artesanal_Historica/datos Bacalao historico 1997-2022CTP/BITACORAS ESPINEL bacalao.xlsx", sheet = "BITACORAS_ESPINEL_bacalao")
long <- read_excel("Artesanal_Historica/datos Bacalao historico 1997-2022CTP/LONGITUD_ESPINEL_bacalao.xlsx")
bio <- read_excel("Artesanal_Historica/datos Bacalao historico 1997-2022CTP/BIOLOGICO ESPINEL bacalao.xlsx", 
    sheet = "BIOLOGICO_ESPINEL_bacalao")
landing <- read_excel("Artesanal_Historica/DESEMBARQUE HISTÓRICO.xlsx", 
    skip = 2)

Identificamos los registros asociados recurso objetivo

  • Codigo del Recurso: 37
  • Nombre común: Bacalao de profundidad
  • Nombre científico: Dissostichus eleginoides

Idetifico los registros por recurso y por base para luego filtrar.

dim(bit)
   [1] 14208    77
table(bit$COD_ESPECIE)
   
       2     4     5     6    14    15    16    17    18    20    22    23    24 
       7     1    14    25   147     6    89    16   698     1    25     3     7 
      25    27    33    35    37    42    43    49    53    56    59    74    75 
       3    11     2     2 11074     3     9    21     1     5    35     1    28 
      81    88    99   103   104   105   106   108   119   127   129   144   194 
      19     1   159    21    24     2     7    44     1     1     1     1    91 
     199   212   226   239   243   323   324   325   334   844   849   920   984 
     178    18     1    22     1     2    50     6   830     3   138     1     1 
     989   999  1309 
      36   249    58
dim(long)
   [1] 15831    24
table(long$COD_ESPECIE)
   
      37 
   15831
dim(bio)
   [1] 127409     36
table(bio$COD_ESPECIE)
   
       37 
   127409
# las bases de biologicos y longitud solo teienen  registros de bacalao.
# filtro bitacoras dejando solo bacalao
bitb <- bit %>% 
  filter(COD_ESPECIE==37)
dim(bitb)
   [1] 11074    77
# se eliminan 1208-11074 = 3134 registros

Identifico ahora los NA en cada base

colSums(is.na(bitb))
                             ID                     embarque 
                            276                            0 
                      COD_BARCO          FECHA_HORA_RECALADA 
                              0                            0 
               FECHA_HORA_ZARPE                COD_PESQUERIA 
                              1                            0 
              COD_PESQUERIA_ant                N_TRIPULANTES 
                            276                         5527 
                      N_CALADAS                 PUERTO_ZARPE 
                           9197                           41 
                PUERTO_RECALADA       nombre_puerto_recalada 
                              3                           12 
                 NRO_FORMULARIO       REGION_PUERTO_RECALADA 
                           4652                            3 
               ESPECIE_OBJETIVO                     ECOSONDA 
                            233                         8158 
                            GPS            POTENCIA_MOTOR_EQ 
                           8217                         6394 
                        VIRADOR                 GASTOS_VIAJE 
                           8179                         8757 
                NUMERO_LANCE_EX                  FECHA_LANCE 
                              0                            0 
                            año                          mes 
                              0                            0 
                           trim                          dfp 
                              0                            1 
                  ID_CUADRICULA               ID_PROCEDENCIA 
                           8244                         8321 
             PESO_TOTAL_CAPTURA                      LATITUD 
                           5630                         3223 
                       LONGITUD                     lat_ctgr 
                           3222                         3223 
                       lon_ctgr                         zona 
                           3222                            0 
         ESPECIE_OBJETIVO_LANCE                  CLASE_LANCE 
                           9615                         8773 
                    COD_ESPECIE                         PESO 
                              0                            0 
                      PESO_corr             CAPTURA_RETENIDA 
                              0                         9359 
               VOLUMEN_DESCARTE               LUGAR_DESCARTE 
                           9096                         9620 
                  TIPO_DESCARTE              PRECIO_UNITARIO 
                           9462                         5962 
                DESTINO_CAPTURA                 NRO_ANZUELOS 
                           6017                        10978 
             REGION_PROCEDENCIA        FECHA_HORA_FIN_CALADO 
                           8305                         6290 
          FECHA_HORA_INI_CALADO        LATITUD_INICIO_CALADO 
                           2256                         7311 
         LONGITUD_INICIO_CALADO           LATITUD_FIN_CALADO 
                           7320                         9273 
            LONGITUD_FIN_CALADO        FECHA_HORA_INI_VIRADO 
                           9265                         6298 
          FECHA_HORA_FIN_VIRADO       LATITUD_INICIAL_VIRADO 
                           2275                         8100 
        LONGITUD_INICIAL_VIRADO           LATITUD_FIN_VIRADO 
                           8100                         8101 
            LONGITUD_FIN_VIRADO        PROFUNDIDAD_MINIMA_LM 
                           8102                         8784 
          PROFUNDIDAD_MAXIMA_LM PROFUNDIDAD_FONDO_VIRADO_INI 
                           5076                         8458 
   PROFUNDIDAD_FONDO_VIRADO_FIN                     prof_med 
                           8375                         4039 
             SEPARACION_ANZUELO                MARCA_ANZUELO 
                           7403                         9202 
             NUMERO_DE_ANZUELOS             PERDIDA_ANZUELOS 
                           4025                         8821 
                   TIPO_CARNADA              TAMANIO_ANZUELO 
                           4044                         3984 
              INTENSIDAD_VIENTO         LONGITUD_LINEA_MADRE 
                           7003                         6338 
                   HORAS_REPOSO                 TIPO_ESPINEL 
                           8121                         5738 
                        N_PANOS                 ANZ_POR_PANO 
                           8126                         8100 
                         filtro 
                              0
colSums(is.na(long))
                    ID           COD_BARCO FECHA_HORA_RECALADA    FECHA_HORA_ZARPE 
                  2997                   0                   0                   0 
         COD_PESQUERIA     PUERTO_RECALADA      NRO_FORMULARIO              REGION 
                     0                   0                   0                   0 
           FECHA_LANCE     NUMERO_LANCE_EX             LATITUD            LONGITUD 
                     0                   0                4425                4425 
     NUMERO_EJEMPLARES  PESO_TOTAL_MUESTRA         NUMERO_CAJA         COD_ESPECIE 
                 15733               15831                   0                   0 
        ORIGEN_MUESTRA      FECHA_MUESTREO       N_TOTAL_INDIV   LONGITUD_DESCARTE 
                     0               15831                   0               15831 
      LONGITUD_MUESTRA                SEXO        N_INDIVIDUOS                 año 
                     0                   0                   2                   0
colSums(is.na(bio))
                               ID                      COD_BARCO 
                            16722                              0 
              FECHA_HORA_RECALADA               FECHA_HORA_ZARPE 
                                0                            100 
                  PUERTO_RECALADA                   PUERTO_ZARPE 
                              117                            478 
                           REGION                  COD_PESQUERIA 
                            16839                              0 
                   NRO_FORMULARIO                    FECHA_LANCE 
                                0                              0 
                  NUMERO_LANCE_EX                        LATITUD 
                                0                          20300 
                         LONGITUD              NUMERO_EJEMPLARES 
                            20324                         127409 
               PESO_TOTAL_MUESTRA                    COD_ESPECIE 
                           127409                              0 
                      N_ESPECIMEN                 ORIGEN_MUESTRA 
                                0                              0 
                   SEXO_ESPECIMEN                    NRO_MUESTRA 
                             5523                         126955 
               LONGITUD_ESPECIMEN                 PESO_ESPECIMEN 
                               41                          94366 
                  NUMERO_OTOLITOS                PESO_EVISCERADO 
                            79732                          11493 
                          MADUREZ                   PESO_GONADAS 
                            96557                         107655 
              CONTENIDO_ESTOMACAL                      REPLECION 
                           127409                         126835 
                   LONGITUD_DISCO                    ANCHO_DISCO 
                           127404                         127379 
                    PESO_ESTOMAGO            PESO_PARED_ESTOMAGO 
                           126014                         127409 
                     NUMERO_FICHA CONT_ESTOMACAL_ESTADO_ESTOMAGO 
                           127409                         127409 
              NUMERO_FICHA_GONADA                            año 
                           127409                              0

Comenzar a trabajar bases por separado

DESEMBARQUES

Tabla con los desembarques oficiales (Sernapesca, 2022)


kbl(landing, booktabs = T,format = "html",
    caption = "Desembarque Bacalao Artesanal por Región") %>%
    kable_styling(latex_options = c("striped",
                                  "condensed","scale_down"),
                full_width = FALSE) 
Desembarque Bacalao Artesanal por Región
...1 AyP TPCA ANTOF ATCMA COQ VALPO LGBO MAULE ÑUBLE BBIO ARAUC RIOS LAGOS AYSEN MAG ...17
1985 NA 8 102 146 162 1674 NA 349 NA 1527 NA NA 63 28 NA 4059
1986 NA 842 1531 213 329 1242 NA 88 NA 1546 NA NA 311 6 NA 6108
1987 NA 182 335 171 51 671 NA NA NA 1264 NA NA 689 21 NA 3384
1988 NA 131 174 251 42 670 NA 46 NA 1597 NA NA 877 8 NA 3796
1989 NA 217 175 177 109 756 NA 114 NA 1859 10 NA 1462 8 NA 4887
1990 NA 335 161 126 100 444 NA 5 NA 2620 NA NA 1789 36 NA 5616
1991 NA 280 186 142 223 519 NA NA NA 1901 NA NA 680 NA NA 3931
1992 NA 30 45 77 53 477 NA 131 NA 2108 1 NA 741 1 NA 3664
1993 NA 37 4 66 81 1676 NA 295 NA 1111 NA NA 807 NA 45 4122
1994 NA 24 139 213 68 671 NA 526 NA 1920 NA NA 1374 41 411 5387
1995 NA 252 259 286 65 206 NA 190 NA 1347 NA NA 1680 31 266 4582
1996 NA 476 220 121 177 272 NA 226 NA 1390 2 NA 1989 22 83 4978
1997 NA 36 82 47 57 98 NA 116 NA 1077 1 NA 1803 22 83 3422
1998 NA 9 67 169 61 155 NA 399 NA 1284 NA NA 2038 NA 11 4193
1999 NA 42 72 168 87 484 NA 406 NA 1369 NA NA 2910 NA 270 5808
2000 NA 285 98 153 105 200 NA 292 NA 800 NA NA 3515 NA 345 5793
2001 NA 198 85 127 113 191 NA 136 NA 1049 NA NA 2045 NA NA 3944
2002 NA 154 44 97 57 188 NA 186 NA 732 NA NA 3097 NA 10 4565
2003 NA 58 25 51 27 338 NA 123 NA 752 NA NA 3189 NA 179 4742
2004 NA 76 32 63 23 308 NA 132 NA 412 NA NA 2303 NA 70 3419
2005 NA 111 14 47 26 84 NA 175 NA 475 NA NA 2021 NA 325 3278
2006 NA 87 3 50 50 92 NA 159 NA 243 NA NA 1367 NA 40 2091
2007 19 43 7 22 25 43 NA 84 NA 189 NA 501 1157 NA NA 2090
2008 4 48 21 9 3 32 NA 70 NA 219 NA 349 803 NA NA 1558
2009 13 85 24 20 16 79 NA 112 NA 239 NA 522 571 NA NA 1681
2010 13 43 13 58 11 37 NA 63 NA 109 NA 465 655 NA NA 1467
2011 19 82 20 46 6 49 NA 90 NA 276 NA 613 987 NA NA 2188
2012 25 68 11 82 14 26 NA 105 NA 317 NA 290 1126 NA NA 2064
2013 26 58 12 68 23 52 NA 214 NA 186 NA 277 622 NA 20 1558
2014 13 48 - 59 34 64 NA 171 NA 129 NA 252 453 NA 57 1280
2015 6 52 13 53 38 93 NA 119 NA 261 NA 298 638 NA 38 1609
2016 17 51 20 59 16 70 NA 71 NA 335 NA 327 755 NA NA 1721
2017 20 92 33 89 33 117 NA 116 NA 316 NA 312 790 NA 28 1946
2018 29 78 5 74 49 78 NA 113 NA 251 NA 218 620 NA 25 1540
2019 26 55 7 63 35 42 NA 102 NA 248 NA 203 696 NA 94 1571
2020 5 18 7 NA 1 27 NA 78 NA 145 NA 229 261 NA 32 803
2021 2 83 10 138 17 52 NA 206 NA 304 NA 500 517 NA 21 1850
2022 26 100 - 148 58 75 - 143 - 318 - 332 754 - 29 1983

Ploteo los desembarques por region y por año

landing <- as.data.frame(lapply(landing, as.double))
str(landing)
   'data.frame':    38 obs. of  17 variables:
    $ ...1 : num  1985 1986 1987 1988 1989 ...
    $ AyP  : num  NA NA NA NA NA NA NA NA NA NA ...
    $ TPCA : num  8 842 182 131 217 335 280 30 37 24 ...
    $ ANTOF: num  102 1531 335 174 175 ...
    $ ATCMA: num  146 213 171 251 177 126 142 77 66 213 ...
    $ COQ  : num  162 329 51 42 109 100 223 53 81 68 ...
    $ VALPO: num  1674 1242 671 670 756 ...
    $ LGBO : num  NA NA NA NA NA NA NA NA NA NA ...
    $ MAULE: num  349 88 NA 46 114 5 NA 131 295 526 ...
    $ ÑUBLE: num  NA NA NA NA NA NA NA NA NA NA ...
    $ BBIO : num  1527 1546 1264 1597 1859 ...
    $ ARAUC: num  NA NA NA NA 10 NA NA 1 NA NA ...
    $ RIOS : num  NA NA NA NA NA NA NA NA NA NA ...
    $ LAGOS: num  63 311 689 877 1462 ...
    $ AYSEN: num  28 6 21 8 8 36 NA 1 NA 41 ...
    $ MAG  : num  NA NA NA NA NA NA NA NA 45 411 ...
    $ ...17: num  4059 6108 3384 3796 4887 ...
summary(landing)
         ...1           AyP             TPCA            ANTOF        
    Min.   :1985   Min.   : 2.00   Min.   :  8.00   Min.   :   3.00  
    1st Qu.:1994   1st Qu.:11.25   1st Qu.: 44.25   1st Qu.:  12.75  
    Median :2004   Median :18.00   Median : 77.00   Median :  32.50  
    Mean   :2004   Mean   :16.44   Mean   :128.26   Mean   : 112.67  
    3rd Qu.:2013   3rd Qu.:25.25   3rd Qu.:148.25   3rd Qu.: 111.25  
    Max.   :2022   Max.   :29.00   Max.   :842.00   Max.   :1531.00  
                   NA's   :22                       NA's   :2        
        ATCMA            COQ             VALPO             LGBO    
    Min.   :  9.0   Min.   :  1.00   Min.   :  26.0   Min.   : NA  
    1st Qu.: 58.0   1st Qu.: 23.50   1st Qu.:  65.5   1st Qu.: NA  
    Median : 82.0   Median : 49.50   Median : 136.0   Median : NA  
    Mean   :106.7   Mean   : 64.34   Mean   : 325.1   Mean   :NaN  
    3rd Qu.:148.0   3rd Qu.: 77.75   3rd Qu.: 468.8   3rd Qu.: NA  
    Max.   :286.0   Max.   :329.00   Max.   :1676.0   Max.   : NA  
    NA's   :1                                         NA's   :38   
        MAULE           ÑUBLE          BBIO            ARAUC           RIOS      
    Min.   :  5.0   Min.   : NA   Min.   : 109.0   Min.   : 1.0   Min.   :203.0  
    1st Qu.: 99.0   1st Qu.: NA   1st Qu.: 253.5   1st Qu.: 1.0   1st Qu.:270.8  
    Median :127.0   Median : NA   Median : 603.5   Median : 1.5   Median :319.5  
    Mean   :165.3   Mean   :NaN   Mean   : 848.0   Mean   : 3.5   Mean   :355.5  
    3rd Qu.:194.0   3rd Qu.: NA   3rd Qu.:1363.5   3rd Qu.: 4.0   3rd Qu.:473.8  
    Max.   :526.0   Max.   : NA   Max.   :2620.0   Max.   :10.0   Max.   :613.0  
    NA's   :2       NA's   :38                     NA's   :34     NA's   :22     
        LAGOS            AYSEN            MAG             ...17     
    Min.   :  63.0   Min.   : 1.00   Min.   : 10.00   Min.   : 803  
    1st Qu.: 661.2   1st Qu.: 8.00   1st Qu.: 28.25   1st Qu.:1753  
    Median : 842.0   Median :22.00   Median : 51.00   Median :3402  
    Mean   :1267.2   Mean   :20.36   Mean   :112.82   Mean   :3228  
    3rd Qu.:1799.5   3rd Qu.:29.50   3rd Qu.:157.75   3rd Qu.:4472  
    Max.   :3515.0   Max.   :41.00   Max.   :411.00   Max.   :6108  
                     NA's   :27      NA's   :16
landing2 <- landing %>% 
  pivot_longer(cols=c("AyP"  , "TPCA"  ,"ANTOF", "ATCMA", "COQ",
               "VALPO" ,"LGBO" , "MAULE", "ÑUBLE", "BBIO" , "ARAUC",
               "RIOS" , "LAGOS", "AYSEN", "MAG"), 
               names_to = "REGION", 
               values_to = "CAPTURA") %>% 
  rename(AÑO="...1") %>% 
  dplyr::select(-2)

Genero un gráfico de barras


landing2$REGION <- factor(landing2$REGION , 
                          levels = c("AyP"  , "TPCA"  ,"ANTOF", "ATCMA", "COQ",
               "VALPO" ,"LGBO" , "MAULE", "ÑUBLE", "BBIO" , "ARAUC",
               "RIOS" , "LAGOS", "AYSEN", "MAG"))
desem <- ggplot(landing2 %>% 
                   drop_na(REGION),aes(AÑO, CAPTURA, fill=REGION)) +
  geom_bar(stat="identity")+
  scale_fill_viridis_d(option="G")+
  theme_minimal()+
  scale_x_continuous(breaks = seq(from = 1985, to = 2022, by = 4))+
  scale_y_continuous(breaks = seq(from = 0, to = 4000, by = 1000))+
  theme(axis.text.x = element_text(angle = 90, hjust = 2),
        panel.grid = element_blank(),
        legend.position = "none")+
  facet_wrap(~REGION, ncol=3)+
  labs(y="Captura (t)",
       x="")
desem

Los principales desembarques estan asociados a las regiones de Antifagasta, Valparaiso y BioBIo pero solo durante los primeros años (1985- mediados del 2000). Luego de esto, todas las regiones vieron disminuidos los registros de extracción del recurso.

BITÁCORA

Esta base tiene como principal objetivo obtener un indicador de esfuerzo para calcular un indice de abundancia relativo como la CPUE.

Primero identifico la estructura de la base

glimpse(bitb)

ahora las estadísticas descriptivas de las variables de intéres. En este caso dfp, PESO_corr, prof_med

Miramos los oultiers de los datos

# OUTLIERS

#Order data
bitb <- bitb %>%
  mutate(order = seq(1:nrow(bitb)))

#Select continuous variables to plot
p1 <- multi_dotplot(bitb, order, dfp)
p2 <- multi_dotplot(bitb, order, PESO_corr)
p3 <- multi_dotplot(bitb, order, prof_med)
p4 <- multi_dotplot(bitb, order, N_TRIPULANTES)
p5 <- multi_dotplot(bitb, order, HORAS_REPOSO)
p6 <- multi_dotplot(bitb, order, NUMERO_DE_ANZUELOS)

#Plot as a grid
ggarrange(p1, p2, p3, p4,p5, p6,  nrow = 3)

Remuevo outliers

Los datos de profundidades andan bien, Filtro los datos de la variable dfp entre 0 y 30 días. y repito la inspección

bitb2 <- bitb %>% 
  filter(dfp>0,
         dfp<60,
         PESO_corr<30000,
         N_TRIPULANTES<30,
         NUMERO_DE_ANZUELOS<4000)

Miro nuenvamente los datos filtrados

# OUTLIERS

#Order data
bitb2 <- bitb2 %>%
  mutate(order = seq(1:nrow(bitb2)))

#Select continuous variables to plot
p1a <- multi_dotplot(bitb2, order, dfp)
p2a <- multi_dotplot(bitb2, order, PESO_corr)
p3a <- multi_dotplot(bitb2, order, prof_med)
p4a <- multi_dotplot(bitb2, order, N_TRIPULANTES)
p5a <- multi_dotplot(bitb2, order, HORAS_REPOSO)
p6a <- multi_dotplot(bitb2, order, NUMERO_DE_ANZUELOS)

#Plot as a grid
ggarrange(p1a, p2a, p3a, p4a, p5a, p6a,  nrow = 3)

Identifico las dimensionesd e la nueva base y la comparo con la anterior

dim(bitb2)
   [1] 3921   78
dim(bitb)
   [1] 11074    78
table(bitb2$año)
   
   2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 
      2    2   40  379  427  318  635  686  410  485  517   20

Los registros se minimiza en ciertos años lo cual genera problemas en la fiabilidad de la estimación.

ahora calculamos el rendimiento nominal

CPUE Nominal

La medida de esfuerzo será dfp. Exploramos la variable.

# Frequency polygon plot for catch
his <- ggplot(bitb2, aes(dfp)) +
  geom_freqpoly(bins = 5) +
  labs(x = "dfp", y = "Frequency") +
  theme_bw() +
  theme(panel.border = element_rect(colour = "black", 
                                    fill=NA, size = 1))
# Patterns in the variance? (any lack of homogeneity)
point <- ggplot(bitb2 %>% 
                  filter(PESO_corr>1000), aes(x = dfp, y = (PESO_corr))) +
  geom_point(shape = 16, size = 5, alpha = 0.6) +
  stat_smooth(method = "lm")+
  theme(panel.background = element_blank()) +
  theme(panel.border = element_rect(fill = NA, size = 1)) +
  theme(strip.background = element_rect(fill = "white", 
                   color = "white", size = 1)) +
  theme(text = element_text(size=13)) +
  xlab("dfp") + ylab("Peso Corregido")


#Plot as a grid
ggarrange(his, point,  nrow = 1)

Tendencia del esfuerzo dfp a través de los años y por región

effor <- ggplot(bitb2 %>%
                  group_by(año, REGION_PUERTO_RECALADA) %>% 
                  summarise(DFPM=mean(dfp)),
                aes(año, DFPM))+
  geom_point(shape = 16, size = 3, alpha = 0.7)+
  scale_x_continuous(breaks = seq(from = 1995, to = 2022, by = 1))+
  geom_smooth(method = 'lm', 
              colour = 'blue', 
              size = 1.5)+
  facet_wrap(~REGION_PUERTO_RECALADA, ncol=5)+
  theme_bw()+
  theme(axis.text.x = element_text(angle = 90, hjust = 2),
        panel.grid = element_blank())+
  labs(y="Effort (dfp)",
       x="")
effor

Tendencia del esfuerzo NUMERO_DE_ANZUELOS a través de los años y por región

efforanz <- ggplot(bitb2 %>%
                  group_by(año, REGION_PUERTO_RECALADA) %>% 
                  summarise(NANZ=mean(NUMERO_DE_ANZUELOS)),
                aes(año, NANZ))+
  geom_point(shape = 16, size = 3, alpha = 0.7)+
  scale_x_continuous(breaks = seq(from = 1995, to = 2022, by = 1))+
  geom_smooth(method = 'lm', 
              colour = 'green', 
              size = 1.5)+
  facet_wrap(~REGION_PUERTO_RECALADA, ncol=5)+
  theme_bw()+
  theme(axis.text.x = element_text(angle = 90, hjust = 2),
        panel.grid = element_blank())+
  labs(y="Effort (dfp)",
       x="")
efforanz

Calculo los ceros

#CALCULATE NUMBER OF ZEROS

# What is the percentage of zeros i the response variable

round(sum(bitb2$dfp == 0) * 100 / nrow(bitb2),0)
   [1] 0
#0

Interacciones

# Interactions

# Year x season
ggplot(bitb2, aes(x = dfp, y = (PESO_corr))) +
  geom_point(shape = 16, size = 3, alpha = 0.7) +
  geom_smooth(method = 'lm', colour = 'red', se = FALSE) +
  theme_bw() +
  xlab("Points") + ylab("Catch") +
  facet_grid(año~trim)

# No
# Year x habitat
ggplot(bitb2, aes(x = dfp, y = (PESO_corr))) +
  geom_point(shape = 16, size = 3, alpha = 0.7) +
  geom_smooth(method = 'lm', colour = 'red', se = FALSE) +
  theme_bw() +
  xlab("dfp") + ylab("Catch") +
  facet_grid(año~N_TRIPULANTES)

# Perhaps
# Season x habitat
ggplot(bitb2, aes(x = dfp, y = (PESO_corr))) +
  geom_point(shape = 16, size = 3, alpha = 0.7) +
  geom_smooth(method = 'lm', colour = 'red', se = FALSE) +
  theme_bw() +
  xlab("dfp") + ylab("Catch") +
  facet_grid(trim~N_TRIPULANTES)

# CPUE slope varies between habitats - interaction
# Categorizar la variable continua en 4 niveles
bitb2$prof_med_cat <- cut(bitb2$prof_med, breaks = 4, labels = c("Bajo", "Medio-Bajo", "Medio-Alto", "Alto"))

# Oxbow x habitat
ggplot(bitb2 %>% 
         drop_na(prof_med_cat), 
       aes(x = dfp, y = (PESO_corr))) +
  geom_point(shape = 16, size = 3, alpha = 0.7) +
  geom_smooth(method = 'lm', 
              colour = 'red', 
              se = FALSE) +
  theme_bw() +
  xlab("dfp") + ylab("Catch") +
  facet_grid(prof_med_cat~año)

Profundidad por region

profu <- ggplot(bitb2, aes(REGION_PUERTO_RECALADA, desc(prof_med), 
                            group=REGION_PUERTO_RECALADA))+
  geom_boxplot(fill=2, alpha=.5)+
  geom_jitter(size=0.4, alpha=0.2,
              width = .25)+
  #facet_wrap(~año)+
  theme_bw()+
  scale_x_continuous(breaks = seq(from = 1, to = 15, by = 1))+
  labs(x="Región",
       y="Profundidad (mts)")
profu

Correlaciones

Análisis de utilidad para identificar a traves de un metodo de corrrelación de pearson, la correlación en tre las variables que serán utilizadas en la estandariacion de la CPUEPrimero identifico las variables a correlacionar

bitb3 <- bitb2 %>%
  dplyr::select(8,23,24,26, 34, 39, 64, 67) 

results <- correlation(bitb3)

glimpse(bitb3)
   Rows: 3,921
   Columns: 8
   $ N_TRIPULANTES      <dbl> 6, 7, 7, 7, 7, 8, 6, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, …
   $ año                <dbl> 2011, 2011, 2012, 2012, 2013, 2013, 2013, 2013, 201…
   $ mes                <dbl> 7, 8, 5, 10, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11,…
   $ dfp                <dbl> 16.25000, 15.29167, 18.66667, 13.56250, 14.16667, 1…
   $ zona               <dbl> 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, …
   $ PESO_corr          <dbl> 1116.5200, 1256.3560, 2168.0000, 2493.2000, 2168.00
   $ prof_med           <dbl> 1425, 1425, 2000, 2000, 1500, 1500, 600, 1152, 1125…
   $ NUMERO_DE_ANZUELOS <dbl> 2400, 2400, 1800, 2000, 2400, 4, 3000, 500, 500, 50…
results %>%
  summary(redundant=TRUE) %>% 
  plot(results, show_data = "points")+
  theme_bw()

ggplot(bitb2, aes(x = nombre_puerto_recalada , y = dfp, fill = nombre_puerto_recalada )) +
  geom_violindot(fill_dots = "black") +
  theme_modern() +
  scale_fill_material_d()


ggplot(bitb2, aes(x = as.factor(REGION_PUERTO_RECALADA ), 
                  y = bitb2$NUMERO_DE_ANZUELOS, 
                  fill = as.factor(REGION_PUERTO_RECALADA))) +
  geom_violin() +
  theme_modern() +
  scale_fill_material_d(palette="ice",
                        name="REGION")

Ahora estimo la CPUE, la cual es el rendimoento entre el esfuerzo y la csaptura.

bitb2 <- bitb2 %>% 
  mutate(CPUE = PESO_corr/dfp)

Interaccion de la variable

# Year x season
ggplot(bitb2, aes(x = PESO_corr, y = (CPUE))) +
  geom_point(shape = 16, size = 3, alpha = 0.7) +
  geom_smooth(method = 'lm', colour = 'red', se = FALSE, size = 1.5) +
  theme_bw()+
  xlab("Catch") + ylab("CPUE") +
  facet_grid(año~N_TRIPULANTES)

ploteo los datos de CPUE totales.

# para compara con la base original 
#bitb3 <- bitb %>% 
#  mutate(CPUE = PESO_corr/dfp)

cpuen <- ggplot(bitb2 %>%
                  group_by(año, zona) %>% 
                  summarise(CPUEM=mean(CPUE)),
                aes(año, CPUEM))+
  geom_point(shape = 16, size = 3, alpha = 0.7)+
  scale_x_continuous(breaks = seq(from = 1995, to = 2022, by = 1))+
  geom_smooth(method = 'loess', 
              colour = 'red', 
              size = 1.5)+
  facet_wrap(~zona)+
  theme_bw()+
  theme(axis.text.x = element_text(angle = 90, hjust = 2),
        panel.grid = element_blank())+
  labs(y="CPUE (kg/dfp)",
       x="")
cpuen

CPUE Estandarizada

Identificar los proncipales factores para modelar la variable.

COMPOSICIONES DE TALLAS

La información contenida en las estructiras de tallas son consideradas una de las piezas mas importantes en la ciencia pesquera (Canales, Punt, & Mardones, 2021; Hordyk, Ono, Sainsbury, Loneragan, & Prince, 2014; Rudd & Thorson, 2018). Sin embargo, esta debe ser validada y confirmada para no violar supuestos referidos a la repreentatividad del dato y su relación con la dinámica poblacional.

Ahora nos disponemos a explorar esta fuente de información.

Primero identificamos la estructura de la base;

glimpse(long)
   Rows: 15,831
   Columns: 24
   $ ID                  <chr> "COD_BARCO=730881 AND TO_CHAR(FECHA_HORA_RECALADA,…
   $ COD_BARCO           <dbl> 730881, 730881, 730881, 730881, 730881, 730881, 73…
   $ FECHA_HORA_RECALADA <dttm> 2021-05-27 15:00:00, 2021-05-27 15:00:00, 2021-05…
   $ FECHA_HORA_ZARPE    <dttm> 2021-05-10 11:00:00, 2021-05-10 11:00:00, 2021-05…
   $ COD_PESQUERIA       <dbl> 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50…
   $ PUERTO_RECALADA     <dbl> 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 3,…
   $ NRO_FORMULARIO      <dbl> 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,…
   $ REGION              <dbl> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1,…
   $ FECHA_LANCE         <dttm> 2021-05-27 15:00:00, 2021-05-27 15:00:00, 2021-05…
   $ NUMERO_LANCE_EX     <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
   $ LATITUD             <dbl> 243900, 243900, 243900, 243900, 243900, 243900, 24…
   $ LONGITUD            <dbl> 714400, 714400, 714400, 714400, 714400, 714400, 71…
   $ NUMERO_EJEMPLARES   <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
   $ PESO_TOTAL_MUESTRA  <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
   $ NUMERO_CAJA         <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
   $ COD_ESPECIE         <dbl> 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37…
   $ ORIGEN_MUESTRA      <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3,…
   $ FECHA_MUESTREO      <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
   $ N_TOTAL_INDIV       <dbl> 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 84, 84, 23…
   $ LONGITUD_DESCARTE   <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
   $ LONGITUD_MUESTRA    <dbl> 115, 125, 129, 130, 143, 152, 157, 100, 108, 110, …
   $ SEXO                <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
   $ N_INDIVIDUOS        <dbl> 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 3, 1, 1, 2, 1, 1,…
   $ año                 <dbl> 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 20…

Primero selecciono las columnas de interes y luego genero la expansión de LONGITUD_MUESTRA a N_INDIVIDUOS. Expand frecuency data related length, in this case N_INDIVIDUOS column have frecuency that we need expand to whole data frame.

Selecciono variables de interes

long1 <- long %>% 
  dplyr::select(6,8,11,12,21,22,23,24)
dim(long1)
   [1] 15831     8
long2 <- long %>% 
  drop_na(N_INDIVIDUOS) %>% 
  type.convert(as.is = TRUE) %>% 
  uncount(N_INDIVIDUOS)

dim(long2)
   [1] 34299    23
legend.labels <- c('Indet.', 'Macho' , 'Hembra')
nbco <- ggplot(long2, aes(x=LONGITUD_MUESTRA, y = as.factor(año),
                         fill=as.factor(SEXO)))+
  geom_density_ridges(stat = "density_ridges", bins = 20, 
                      scale = 2, draw_baseline = FALSE,
                      alpha=0.5)+
  facet_wrap(.~REGION, ncol=5) +
  geom_vline(xintercept = 110, color = "red")+
  scale_fill_viridis_d(option = "C",
                       name="SEXO",
                       labels=legend.labels)+
  scale_y_discrete(breaks = seq(from = 2004, to = 2022, by = 2))+
  theme(axis.text.x = element_text(angle = 90, hjust = 1))+
  theme_minimal()+
  xlab("Longitud (cm.)")+
  ylab("")
#scale_x_discrete((limits = rev(levels(talla2021$ANO_ARR))))+
nbco

Prepara los vectores para sumar a los .dat del modelo si los necesito.

long2$LONG_CAT <- as.numeric(as.character(cut(x = long2$LONGITUD_MUESTRA, 
                                              breaks = seq(10,220,2), 
                                              labels = seq(10,218,2),
                                              right = FALSE)))
LONGT <- table(long2$año, long2$LONG_CAT)
LONGT
         
           10  12  38  40  42  44  48  50  52  54  56  58  60  62  64  66  68  70
     2004   2   1   0   0   0   0   0   0   0   0   0   3  14  17   3  13  14  23
     2005   0   0   0   0   0   0   0   0   0   0   1   0   1   2   5  10  11  17
     2006   0   0   0   0   0   0   0   0   0   2   2   3   2   4   6   6   8  12
     2007   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
     2008   0   0   0   0   0   0   0   0   1   0   0   0   2   3   2   3  10   3
     2009   0   0   0   0   0   0   0   0   0   0   1   0   5   2   4   8  25  23
     2010   0   0   0   0   0   0   0   0   0   1   1   2   1   5   7  11  11  16
     2011   0   0   0   1   2   1   1   1   0   1   2   2   4   9  12   8  17  21
     2012   0   0   0   0   0   0   0   0   0   0   0   0   1   5   2  20  20  44
     2013   0   0   0   0   0   0   0   0   0   1   0   0   0   1   0   0  12  10
     2014   0   0   1   0   0   0   1   0   0   0   1   2  27  21  41  85 112 120
     2015   0   0   0   0   0   0   0   0   0   0   0   1   6  16  20  41  65  87
     2016   0   0   0   0   0   0   0   0   0   0   1   4  10  17  47  56  90 140
     2017   0   0   1   0   0   0   0   0   0   3   9  19  60  59 122 117 111 178
     2018   0   0   0   0   0   0   0   0   0   6   8  25  27  35  46  61  47  68
     2019   0   0   0   0   0   0   0   0   0   1   2   4  18  42  81 118 139 202
     2020   0   0   0   0   0   0   0   0   0   0   0   0   4   5  11  17  11  20
     2021   0   0   0   0   0   0   0   0   1   0   0   0   3   4  10  10  18  41
     2022   0   0   0   0   0   0   0   0   2   1   5  13  24  32  48  83  88 139
         
           72  74  76  78  80  82  84  86  88  90  92  94  96  98 100 102 104 106
     2004  22  22  40  28  33  50  31  62  54  72  47  37  41  43  52  21  17  22
     2005  19  19  26  21  21  31  31  22  31  25  22  18  15  22  10  17   9   8
     2006  11  13  17  20  26  13  12  11   9   9   7   3  12   6   6   9   8   7
     2007   0   1   0   0   1   1   1   2   0   2   0   0   2   0   0   0   0   0
     2008  17   9  17  22  12  15  13  17  16  10  12  10   9  10   6   7   6  10
     2009  39  52  83  82  84 113 105  94  97  82  98  71  54  50  38  28  43  15
     2010  14  22  31  36  21  34  36  41  31  57  36  28  28  20  30  20  11  15
     2011  11  20  25  21  11  18  13  12  18   9  12  10  13  13   8   9   5   8
     2012  63  67  60  39  61  32  29  24  18  27  34  14  12   6  13   9  14   5
     2013  29  29  37  61  99  82  95 112  62 115  55  70  68  41  44  42  34  43
     2014 186 188 216 230 240 252 243 241 224 190 166 124 103 101  68  70  51  36
     2015 116 165 186 186 235 248 253 268 195 240 237 193 179 142 139  86  81  47
     2016 147 192 176 223 278 280 270 270 228 239 234 228 166 154 154 140  99  88
     2017 159 171 146 152 158 160 196 178 147 190 162 184 180 160 217 131 139  94
     2018  46  50  33  28  35  25  23  43  33  43  32  45  44  41  37  36  30  41
     2019 217 190 165 124 102  80  54  31  28  39  24  33  26   8  43  23  26  27
     2020  29  30  28  19  21  23  13   1   6   8   3   4   1   7   4   4   2   7
     2021  54  77 104 115 179 143 159 128 107 114  75  61  48  30  36  25  19  14
     2022 173 203 224 270 323 372 383 376 303 335 285 252 192 119 123 119  76  56
         
          108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142
     2004  15  16  11   9  14  11  21   7   6   2   4   8   9   5   4   2   6   3
     2005  12  10   8   7   5   3   3   3   2   5   1   2   1   0   2   1   2   0
     2006   6   2   5   5   2   2   4   4   3   2   1   0   1   3   1   0   0   2
     2007   0   0   0   1   0   0   0   0   0   0   1   0   0   0   0   0   0   0
     2008   7   6   7  11   6   6   2   4   2   4   5   4   2   2   3   1   3   3
     2009  23  25  18  19  15  12  13   9  12   8   9  10   4   8  11  10  15  11
     2010  16  13   6   8   5   7   9   4   4   5   0   1   1   1   2   4   1   2
     2011   7  15  15   4   1   7   2   4   9   4   4   2   1   1   2   3   2   1
     2012   8  10   3   3   2   3   2   0   1   1   0   0   1   0   1   0   2   0
     2013  31  35  21  21  15  12  21   8   7   7   6   9   5   4   3   4   5   0
     2014  46  35  38  38  41  35  41  29  26  13   9  17  12   8   9   7   9  11
     2015  52  52  39  34  44  41  33  19  27  29  16  18  18   8  15  12  15   5
     2016  45  58  42  30  30  29  28  22  20  23  11  18  13   9   5   6   7   5
     2017  77 139  60  78  45  37  55  19  24  20  11  26  18  22  17   5  12  10
     2018  30  25  26  22  14  10  21  14   4   9   6  10   2   9   9   5   5   7
     2019  24  26  20  22   7  17  22  15  14  11   7   5   1   7   8   1   6   3
     2020   3   3   2   5   4   4   4   0   2   0   4   2   1   0   1   1   1   0
     2021  13  26  34  20  29  21  32  21  27  27  20  17  21  12  20  15  17  13
     2022  33  52  22  21  35  29  14  22  26  21  37  24  21  27  25  14  19  20
         
          144 146 148 150 152 154 156 158 160 162 164 166 168 170 172 174 176 178
     2004   0   3   2   1   0   0   0   0   0   0   0   1   0   0   0   0   0   0
     2005   1   1   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
     2006   0   0   1   0   0   1   0   0   0   0   1   0   0   0   0   0   0   0
     2007   0   0   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
     2008   1   3   5   1   3   1   3   3   0   3   0   0   0   0   0   0   0   0
     2009   4   7   9  13  10   2   8  10   5   5   2   5   5   0   1   1   2   0
     2010   5   0   2   3   0   2   1   2   4   0   0   0   1   1   1   0   0   0
     2011   1   0   2   1   0   0   0   0   1   0   0   1   0   1   0   0   0   0
     2012   1   0   0   1   0   1   0   0   0   0   0   1   0   0   2   0   0   1
     2013   5   4   2   0   0   2   1   0   0   0   2   1   0   0   0   1   0   0
     2014   5   5   6   1   1   2   1   1   3   2   2   3   1   1   0   0   1   0
     2015  10   6  10   9   5   5   3   4   2   2   0   3   3   3   2   1   1   0
     2016   7   7   4   4   4   5   0   1   0   4   3   5   1   2   0   0   3   0
     2017   8   9   7   9   8   4   0   5   6   6   4   5   0   3   2   1   2   0
     2018   5   1   4   6   2   1   1   5   3   1   1   0   1   2   1   3   0   0
     2019   3   4   2   4   1   1   3   0   2   0   2   0   0   0   0   0   0   0
     2020   2   0   0   0   1   0   0   0   2   0   0   0   0   2   0   0   0   0
     2021  11   7   5  13   7   2   5   5   8   6   2   2   4   5   0   0   0   1
     2022  19  18  16  22  17   5  10   7  13   9   6   5   7   5   3   4   3   2
         
          180 182 184 186 188 190 192 200 202
     2004   1   0   0   0   0   0   0   0   0
     2005   0   0   0   0   0   0   0   0   0
     2006   0   0   0   0   0   0   0   0   0
     2007   0   0   0   0   0   0   0   0   0
     2008   0   0   0   0   0   0   0   0   0
     2009   0   0   1   0   0   0   0   0   0
     2010   0   1   0   0   0   0   0   0   0
     2011   0   0   0   0   0   0   0   0   0
     2012   0   0   0   0   0   0   0   0   0
     2013   0   0   0   0   0   0   0   0   0
     2014   0   0   0   0   0   0   1   0   0
     2015   0   0   0   0   0   0   0   0   0
     2016   0   0   1   0   1   0   0   0   0
     2017   0   1   0   0   0   0   0   1   0
     2018   0   0   0   0   0   0   0   0   1
     2019   0   0   0   0   0   0   0   0   0
     2020   0   0   0   0   0   0   0   0   0
     2021   0   0   0   0   0   0   0   0   0
     2022   0   0   3   1   0   1   0   0   0
write.csv()

MAPAS

Lo primero es transformar los datos de lon_ctgr y lat_ctgr a formarto geom. A su vez, saco las NA de las coord

transformar los datos en un sf object

codmap <- st_as_sf(bitb2 %>% 
                    drop_na(lon_ctgr) %>% 
                    drop_na(lat_ctgr), 
                   coords = c("lon_ctgr", "lat_ctgr"),  crs = 4326)

Ahora genero los mapas de Chile con un raster.

chile <- raster::getData("GADM", country = "CHL", level = 1)
chile1<-fortify(chile)
# chilemap <- ggplot()+
#    geom_polygon(data=chile, aes(x=long, y=lat, group=group), 
#               fill="lightblue",color="grey20", size=0.15)+
#    coord_sf(crs = st_crs(4326), 
#             xlim = c(-80, -65), 
#             ylim = c(-58, -15)) +
#           theme_bw()
#  chilemap
# Aca veo los nombres
chile@data$NAME_1
    [1] "Aisén del General Carlos Ibáñez del Campo"
    [2] "Antofagasta"                              
    [3] "Araucanía"                                
    [4] "Arica y Parinacota"                       
    [5] "Atacama"                                  
    [6] "Bío-Bío"                                  
    [7] "Coquimbo"                                 
    [8] "Libertador General Bernardo O'Higgins"    
    [9] "Los Lagos"                                
   [10] "Los Ríos"                                 
   [11] "Magallanes y Antártica Chilena"           
   [12] "Maule"                                    
   [13] "Ñuble"                                    
   [14] "Región Metropolitana de Santiago"         
   [15] "Tarapacá"                                 
   [16] "Valparaíso"

Luego genero los bordes sobre los cuales haré la grilla.

e <- extent(-80,-65,-58,-15)
rc <- crop(chile, e)
proj4string(rc) <- CRS("+init=epsg:4326")
# la proyección adecuada en lat long
chile2 <- st_as_sf(rc) # para dejarlo en formato geom_sf

Se estructura la grilla en el objeto raster de chile1

grid <- chile2 %>%
  st_make_grid(cellsize = c(1,1)) %>% # para que quede cuadrada
  st_cast("MULTIPOLYGON") %>%
  st_sf() %>% # objeto en spatial feature
  mutate(cellid = row_number())

Pongo los datos codmap en la grilla. Aca solo elegí dfpy CPUE pero se ùeden resumir otros

joindat <- grid %>%
  st_join(codmap) %>% 
  group_by(cellid, año) %>% 
  summarise(CPUEM = mean(CPUE),
            DFPM =mean(dfp)) # por ejemplo, plotear la captura "CAPTURA_1"

Mapa Esfuerzo

here we can viz diferent variables

## Plot final
mas1 <- ggplot() +
  geom_sf(data=joindat %>% 
             filter(!is.na(DFPM)), aes(fill = DFPM),
          color=NA) +
  scale_fill_viridis_c(option="E",
                       direction=-1, name="DFP")+
  geom_sf(data = grid,  fill=NA, color=NA) +
  geom_sf(data = chile2, color="grey", fill="white") +
  coord_sf() +
  geom_hline(yintercept = -47, color = "red")+
  scale_alpha(guide="none")+
  facet_wrap(~año, ncol=6)+
  scale_x_continuous(breaks = seq(from = -80, to = -60, by = 10))+
  xlab(expression(paste(Longitude^o,~'O'))) +
  ylab(expression(paste(Latitude^o,~'S')))+
  guides(colour = guide_legend()) +
  theme_bw()+
  theme(panel.background = element_rect(fill = 'white'),
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank())
mas1

Mapa CPUE

## Plot final
mas2 <- ggplot() +
  geom_sf(data=joindat %>% 
             filter(!is.na(CPUEM)), aes(fill = CPUEM),
          color=NA) +
  scale_fill_viridis_b(option="G",
                       direction=-1, name="CPUE (captura/dfp)")+
  geom_sf(data = grid,  fill=NA, color=NA) +
  geom_sf(data = chile2, color="grey", fill="white") +
  coord_sf() +
  geom_hline(yintercept = -47, color = "red")+
  scale_alpha(guide="none")+
  #facet_wrap(~año, ncol=6)+
  scale_x_continuous(breaks = seq(from = -80, to = -60, by = 10))+
  xlab(expression(paste(Longitude^o,~'O'))) +
  ylab(expression(paste(Latitude^o,~'S')))+
  guides(colour = guide_legend()) +
  theme_bw()+
  theme(panel.background = element_rect(fill = 'white'),
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank())
mas2

Falta componer mapas de tallas medias y alguna otra variable de interés.

CONCLUSION

En función de los datos analizados, el modelo propuesto es un enfoque de producción global estao espacio descrito por Pedersen & Berg (2017) y Acom (2015).

REFERENCIAS

Acom, I. C. M. (2015). ICES WKLIFE V REPORT 2015 Methodologies based on Life-history Traits , Development of Quantitative Assessment Exploitation Characteristics and other Report of the Fifth Workshop on the Relevant Parameters for Data-limited Stocks ( WKLIFE V ) Lisbon , Port. (October), 5–9.
Canales, C. M., Punt, A. E., & Mardones, M. (2021). Can a length-based pseudo-cohort analysis (LBPA) using multiple catch length-frequencies provide insight into population status in data-poor situations? Fisheries Research, 234(October 2020), 105810. https://doi.org/10.1016/j.fishres.2020.105810
Hordyk, A., Ono, K., Sainsbury, K., Loneragan, N., & Prince, J. (2014). Some explorations of the life history ratios to describe length composition, spawning-per-recruit, and the spawning potential ratio. ICES Journal of Marine Science, 72(1), 204–216. https://doi.org/10.1093/icesjms/fst235
Pedersen, M. W., & Berg, C. W. (2017). A stochastic surplus production model in continuous time. Fish and Fisheries, 18(2), 226–243. https://doi.org/10.1111/faf.12174
Rudd, M. B., & Thorson, J. T. (2018). Accounting for variable recruitment and fishing mortality in length-based stock assessments for data-limited fisheries. Canadian Journal of Fisheries and Aquatic Sciences, 75(7), 1019–1035. https://doi.org/10.1139/cjfas-2017-0143